package com.tarena.day020;
/** 整数类型演示 */
public class TypeDemo {
  public static void main(String[] args) {
    int i = -1;
    System.out.println(i);//-1
    System.out.println(Integer.toBinaryString(i));//32个1 
    long l = i;//自动类型转换, 自动扩展符号位, 保持数值不变
    System.out.println(l);//-1
    System.out.println(Long.toBinaryString(l));//64个1
    
    //整数的直接量默认是int类型
    //直接量如果不超过范围可以直接给小类型赋值
    //直接量(字面量) 就在直接写出的常数, 如:-1, 0xff, 10
    //long类型的字面量用L/l为后缀
    
    byte b = 127;//
    //b = 128;//编译错误, 超过范围
    //short s = 32768;//编译错误
    short s = 32767;
    //经常使用int类型, 整数不是很大
    //但是要注意运算溢出问题
    int max = 0x7fffffff;
    int loan = max+max+2;
    System.out.println(loan); 
    
    long x = max+max+2;
    System.out.println(x); //0
    
    long y = (long)max+max+2;

    System.out.println(y); //4G
    
    long m = 0x7fffffffffffffffL;
    //java 底层本质上是没有小于32位的数
     
  }
}











